Hamiltonian Paths And Cycles